package com.dtx.factory.shushang.idcard;

import com.dtx.factory.gongyoude.framework.Factory;
import com.dtx.factory.gongyoude.framework.Product;

import java.util.ArrayList;
import java.util.List;

/**
 * IDCardFactory类实现了createProduct方法和registerProduct方法。
 * createProduct方法通过生成IDCard的实例来"生产产品"。
 * registerProduct方法则通过将IDCard的owner(持有人)保存到owners字段中来实现"注册产品"
 */
public class IDCardFactory extends Factory {

    private List<Object> owners = new ArrayList<>();

    @Override
    protected Product createProduct(String owner) {
        return new IDCard(owner);
    }

    @Override
    protected void registerProduct(Product product) {
        owners.add(((IDCard)product).getOwner());
    }

    public List<Object> getOwners() {
        return owners;
    }
}
